package org.nterlearning.datamodel.catalog.model;

import com.liferay.portal.kernel.bean.AutoEscape;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.model.AttachedModel;
import com.liferay.portal.model.BaseModel;
import com.liferay.portal.model.CacheModel;
import com.liferay.portal.model.WorkflowedModel;
import com.liferay.portal.service.ServiceContext;

import com.liferay.portlet.expando.model.ExpandoBridge;

import java.io.Serializable;

import java.util.Date;

/**
 * The base model interface for the FlagReport service. Represents a row in the &quot;CATALOG_FlagReport&quot; database table, with each column mapped to a property of this class.
 *
 * <p>
 * This interface and its corresponding implementation {@link org.nterlearning.datamodel.catalog.model.impl.FlagReportModelImpl} exist only as a container for the default property accessors generated by ServiceBuilder. Helper methods and all application logic should be put in {@link org.nterlearning.datamodel.catalog.model.impl.FlagReportImpl}.
 * </p>
 *
 * @author Brian Wing Shun Chan
 * @see FlagReport
 * @see org.nterlearning.datamodel.catalog.model.impl.FlagReportImpl
 * @see org.nterlearning.datamodel.catalog.model.impl.FlagReportModelImpl
 * @generated
 */
public interface FlagReportModel extends AttachedModel, BaseModel<FlagReport>,
    WorkflowedModel {
    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. All methods that expect a flag report model instance should use the {@link FlagReport} interface instead.
     */

    /**
     * Returns the primary key of this flag report.
     *
     * @return the primary key of this flag report
     */
    public long getPrimaryKey();

    /**
     * Sets the primary key of this flag report.
     *
     * @param primaryKey the primary key of this flag report
     */
    public void setPrimaryKey(long primaryKey);

    /**
     * Returns the uuid of this flag report.
     *
     * @return the uuid of this flag report
     */
    @AutoEscape
    public String getUuid();

    /**
     * Sets the uuid of this flag report.
     *
     * @param uuid the uuid of this flag report
     */
    public void setUuid(String uuid);

    /**
     * Returns the flag report ID of this flag report.
     *
     * @return the flag report ID of this flag report
     */
    public long getFlagReportId();

    /**
     * Sets the flag report ID of this flag report.
     *
     * @param flagReportId the flag report ID of this flag report
     */
    public void setFlagReportId(long flagReportId);

    /**
     * Returns the group ID of this flag report.
     *
     * @return the group ID of this flag report
     */
    public long getGroupId();

    /**
     * Sets the group ID of this flag report.
     *
     * @param groupId the group ID of this flag report
     */
    public void setGroupId(long groupId);

    /**
     * Returns the company ID of this flag report.
     *
     * @return the company ID of this flag report
     */
    public long getCompanyId();

    /**
     * Sets the company ID of this flag report.
     *
     * @param companyId the company ID of this flag report
     */
    public void setCompanyId(long companyId);

    /**
     * Returns the user ID of this flag report.
     *
     * @return the user ID of this flag report
     */
    public long getUserId();

    /**
     * Sets the user ID of this flag report.
     *
     * @param userId the user ID of this flag report
     */
    public void setUserId(long userId);

    /**
     * Returns the user uuid of this flag report.
     *
     * @return the user uuid of this flag report
     * @throws SystemException if a system exception occurred
     */
    public String getUserUuid() throws SystemException;

    /**
     * Sets the user uuid of this flag report.
     *
     * @param userUuid the user uuid of this flag report
     */
    public void setUserUuid(String userUuid);

    /**
     * Returns the fully qualified class name of this flag report.
     *
     * @return the fully qualified class name of this flag report
     */
    public String getClassName();

    /**
     * Returns the class name ID of this flag report.
     *
     * @return the class name ID of this flag report
     */
    public long getClassNameId();

    /**
     * Sets the class name ID of this flag report.
     *
     * @param classNameId the class name ID of this flag report
     */
    public void setClassNameId(long classNameId);

    /**
     * Returns the class p k of this flag report.
     *
     * @return the class p k of this flag report
     */
    public long getClassPK();

    /**
     * Sets the class p k of this flag report.
     *
     * @param classPK the class p k of this flag report
     */
    public void setClassPK(long classPK);

    /**
     * Returns the create date of this flag report.
     *
     * @return the create date of this flag report
     */
    public Date getCreateDate();

    /**
     * Sets the create date of this flag report.
     *
     * @param createDate the create date of this flag report
     */
    public void setCreateDate(Date createDate);

    /**
     * Returns the title of this flag report.
     *
     * @return the title of this flag report
     */
    @AutoEscape
    public String getTitle();

    /**
     * Sets the title of this flag report.
     *
     * @param title the title of this flag report
     */
    public void setTitle(String title);

    /**
     * Returns the content of this flag report.
     *
     * @return the content of this flag report
     */
    @AutoEscape
    public String getContent();

    /**
     * Sets the content of this flag report.
     *
     * @param content the content of this flag report
     */
    public void setContent(String content);

    /**
     * Returns the flag reason of this flag report.
     *
     * @return the flag reason of this flag report
     */
    @AutoEscape
    public String getFlagReason();

    /**
     * Sets the flag reason of this flag report.
     *
     * @param flagReason the flag reason of this flag report
     */
    public void setFlagReason(String flagReason);

    /**
     * Returns the flag comment of this flag report.
     *
     * @return the flag comment of this flag report
     */
    @AutoEscape
    public String getFlagComment();

    /**
     * Sets the flag comment of this flag report.
     *
     * @param flagComment the flag comment of this flag report
     */
    public void setFlagComment(String flagComment);

    /**
     * Returns the moderate action of this flag report.
     *
     * @return the moderate action of this flag report
     */
    @AutoEscape
    public String getModerateAction();

    /**
     * Sets the moderate action of this flag report.
     *
     * @param moderateAction the moderate action of this flag report
     */
    public void setModerateAction(String moderateAction);

    /**
     * Returns the moderator comment of this flag report.
     *
     * @return the moderator comment of this flag report
     */
    @AutoEscape
    public String getModeratorComment();

    /**
     * Sets the moderator comment of this flag report.
     *
     * @param moderatorComment the moderator comment of this flag report
     */
    public void setModeratorComment(String moderatorComment);

    /**
     * Returns the status of this flag report.
     *
     * @return the status of this flag report
     */
    public int getStatus();

    /**
     * Sets the status of this flag report.
     *
     * @param status the status of this flag report
     */
    public void setStatus(int status);

    /**
     * Returns the status by user ID of this flag report.
     *
     * @return the status by user ID of this flag report
     */
    public long getStatusByUserId();

    /**
     * Sets the status by user ID of this flag report.
     *
     * @param statusByUserId the status by user ID of this flag report
     */
    public void setStatusByUserId(long statusByUserId);

    /**
     * Returns the status by user uuid of this flag report.
     *
     * @return the status by user uuid of this flag report
     * @throws SystemException if a system exception occurred
     */
    public String getStatusByUserUuid() throws SystemException;

    /**
     * Sets the status by user uuid of this flag report.
     *
     * @param statusByUserUuid the status by user uuid of this flag report
     */
    public void setStatusByUserUuid(String statusByUserUuid);

    /**
     * Returns the status by user name of this flag report.
     *
     * @return the status by user name of this flag report
     */
    @AutoEscape
    public String getStatusByUserName();

    /**
     * Sets the status by user name of this flag report.
     *
     * @param statusByUserName the status by user name of this flag report
     */
    public void setStatusByUserName(String statusByUserName);

    /**
     * Returns the status date of this flag report.
     *
     * @return the status date of this flag report
     */
    public Date getStatusDate();

    /**
     * Sets the status date of this flag report.
     *
     * @param statusDate the status date of this flag report
     */
    public void setStatusDate(Date statusDate);

    /**
     * @deprecated Renamed to {@link #isApproved()}
     */
    public boolean getApproved();

    /**
     * Returns <code>true</code> if this flag report is approved.
     *
     * @return <code>true</code> if this flag report is approved; <code>false</code> otherwise
     */
    public boolean isApproved();

    /**
     * Returns <code>true</code> if this flag report is a draft.
     *
     * @return <code>true</code> if this flag report is a draft; <code>false</code> otherwise
     */
    public boolean isDraft();

    /**
     * Returns <code>true</code> if this flag report is expired.
     *
     * @return <code>true</code> if this flag report is expired; <code>false</code> otherwise
     */
    public boolean isExpired();

    /**
     * Returns <code>true</code> if this flag report is pending.
     *
     * @return <code>true</code> if this flag report is pending; <code>false</code> otherwise
     */
    public boolean isPending();

    public boolean isNew();

    public void setNew(boolean n);

    public boolean isCachedModel();

    public void setCachedModel(boolean cachedModel);

    public boolean isEscapedModel();

    public Serializable getPrimaryKeyObj();

    public void setPrimaryKeyObj(Serializable primaryKeyObj);

    public ExpandoBridge getExpandoBridge();

    public void setExpandoBridgeAttributes(ServiceContext serviceContext);

    public Object clone();

    public int compareTo(FlagReport flagReport);

    public int hashCode();

    public CacheModel<FlagReport> toCacheModel();

    public FlagReport toEscapedModel();

    public String toString();

    public String toXmlString();
}
